,,2

=======================================

-PRESS SPACEBAR TO QUIT-


:::::::::::::::::::::::::::::::::::::::
::*:::::::::::::::::::::::::::::::::*::
:::                                 :::
:::   DISK TIPS & TRICKS TUTORIAL   :::
:::             PART 2              :::
:::     CLOSER LOOK AT THE VTOC     :::
:::                                 :::
:::         BY CANDY APPLE          :::
:::                                 :::
::*:::::::::::::::::::::::::::::::::*::
:::::::::::::::::::::::::::::::::::::::

   *:::::::::::::::::::::::::::::::*
   ::       DISTRIBUTED BY        ::
   :: CRYSTAL CASTLE 313/856-3804 ::
   *:::::::::::::::::::::::::::::::*

THIS TUTORIAL WILL REPRESENT THE FIRST 
LEG OF YOUR JOURNEY
TOWARDS DISK EXPERTISE.  LET IT BE KNOW
N THAT THE DOS MOD-
IFICATIONS EXPLAINED BELOW AND HEREAFTE
R ONLY APPLY TO A
STANDARD DOS 3.3 SLAVE DISK UNLESS OTHE
RWISE STATED.  A
DISK WITH ANY OTHER TYPE OF DOS SUCH AS
 DOS 3.2 OR A FAST
DOS WILL HAVE LOCATIONS WHERE MANY OF T
HESE PATCHES WON'T 
WORK AND COULD EVEN RUIN A DISK.  IN FA
CT IT'S BEST TO 
MAKE THESE PATCHES ON A SCRATCH DISK UN
TIL THINGS WORK
PROPERLY.  THE AUTHOR IS NOT RESPONSIBL
E FOR DAMAGE DONE TO
ANY DISKETTE.

TO CONTINUE WITH THIS TUTORIAL, YOU WIL
L NEED A DOS 3.3 SLAVE
DISK AND A TRACK AND SECTOR EDITOR PROG
RAM SUCH AS DISK EDIT,
THE INSPECTOR, TRICKY DICK, OR THE SECT
OR EDITOR ON COPY II+,
ETC.  ALSO, SO WE CAN WORK AND UNDERSTA
ND ON THE SAME LEVEL,
MAKE A 'FID' COPY OF THE APPLE SYSTEM M
ASTER DISKETTE AND 
LEAVE IT UNPROTECTED.  NOW LETS GET STA
RTED.


THE VOLUME TABLE OF CONTENTS
--- ------ ----- -- --------
USING YOUR DISK EDIT PROGRAM, READ IN T
RACK $11(17), SECTOR
$00(0).  YOU ARE NOW LOOKING AT THE VTO
C WHICH WILL SOONER OR
LATER IN YOUR LIFE GET OVERWRITTEN WITH
 RANDOM DATA.  WE WON'T
WORRY ABOUT FIXING A CLOBBERED VTOC RIG
HT NOW BUT IN A LATER
TUTORIAL WE'LL DISCUSS THIS.

LET'S TAKE A CLOSER LOOK AT THE FIRST L
INE OF DATA STARTING 
WITH BYTE $00.  IT SHOULD LOOK SIMILIAR
 TO THE FOLLOWING:
BYTE  TRACK $11   SECTOR$00
00:  04 11 0F 03 00 00 FE 00

THE FIRST NUMBER "04" DOESN'T HAVE ANY 
FUNCTIONS, SO IGNORE
IT.  THE NEXT TWO NUMBERS GIVE US THE F
IRST CATALOG ENTRIES.
THE SECOND BYTE REPRESENTS THE TRACK NU
MBER AND THE NEXT IS
THE SECTOR NUMBER.  IN OTHER WORDS, IT'
S TELLING US THAT THE
CATALOG STARTS ON TRACK $11, SECTOR $0F
 (ON A DOS 3.2 DISK,
IT STARTS AT SECTOR $0C).  THE FOURTH B
YTE, "03" TELLS US THAT
THE DOS VERSION IS 3.3 (A "2" = 3.2).  
THE FIFTH AND SIXTH
BYTES AREN'T USED.  THE "FE" GIVES US T
HE DISK VOLUME NUMBER
WHICH IN THIS CASE IS 254 DECIMAL.

THE NEXT SEVERAL ROWS CONTAIN ZEROS BUT
 WHEN WE GET TO BYTE
"$27", NOTICE THE "7A".  THIS BYTE INDI
CATES THE MAXIMUM 
NUMBER OF TRACK/SECTOR ADDRESSES THAT A
 TRACK AND SECTOR
LIST IS ALLOWED TO HOLD, SO $7A = 122 (
DECIMAL) OF 256 BYTE
SECTORS IN A TRACK/SECTOR LIST.

STARTING WITH BYTE $30, YOU WILL SEE TH
E FOLLOWING:
BYTE $30....12 01 00 00 23 10 00 01
THE FIRST NUMBER, "12", INDICATES THAT 
TRACK $12 WAS THE LAST
TRACK ALLOCATED BY DOS FOR FILE STORAGE
.  THE NEXT NUMBER MAY
BE DIFFERENT, SINCE A SMALL VARIATION I
N THE WAY FID WROTE OUT
THE FILES COULD ALTER THE SELECTION OF 
THE NEXT TRACK USED. 
IF YOU HAVE "01", THAT TELLS US THAT TH
E NEXT TRACK THAT DOS
WILL ATTEMPT TO WRITE TO IS $12 + $01 =
 $13.  INSTEAD OF A
"1", YOU MIGHT SEE AN "FF". THIS TELLS 
DOS TO SEARCH IN A 
NEGATIVE DIRECTION, FOR EXAMPLE 12 - 1,
 FOR THE NEXT AVAILABLE
TRACK.  A HEX NUMBER WHOSE HIGH BIT IS 
SET OR WHOSE VALUE IS
$80 OR GREATER IS TAKEN AS A NEGATIVE N
UMBER BY THE SYSTEM.

NOW GO TO THE "23 10". THESE BYTES INDI
CATE THAT DOS HAS FOR-
MATTED $23(35) TRACKS ON THE DISK AND T
HAT EACH TRACK CONTAINS
$10(16) SECTORS.  THE "00 01" ALSO INDI
CATE THAT THERE ARE
$100(256) BYTES PER SECTOR.  THIS IS WR
ITTEN IN LO/HI BYTE
FORMAT - SO REVERSE THEM TO GET $100.


BIT MAPS
--- ----
NOW COMES THE "BIT MAP" FIELD WHICH IS 
THE MOST IMPORTANT AREA
OF THE VTOC.  STARTING WITH BYTE $38 AN
D EXTENDING UP TO 
BYTE $C8 ARE THE BIT MAPS.  THESE BIT M
APS TELL DOS WHICH
TRACKS AND SECTORS HAVE NOT BEEN WRITTE
N ON AND WHICH ARE
AVAILABLE FOR FILE STORAGE.  SO DOS DOE
SN'T CLOBBER THE
PROGRAMS ON THE DISK, IT WILL LOOK AT T
HE BIT MAP FIELD EACH
TIME YOU SAVE ANY NEW INFORMATION ON TH
E DISK.  IF YOU'RE
LOOKING AT THE "FID"ED SYSTEM MASTER, Y
OU WILL BE SEEING
MOSTLY ZEROS.  SINCE THIS IS A LITTLE D
IFFICULT TO LEARN ON
TRY THE FOLLOWING:
  (1) BREAK OUT OF YOUR DISK EDIT PROGR
AM
  (2) PLACE AN UNINITIALIZED DISK IN TH
E DRIVE
  (3) TYPE "CALL -151" TO GO INTO THE M
ONITOR
  (4) TYPE "BEFE:24"
  (5) NOW "INIT HELLO" ON THE UNINITIAL
IZED DISK
  (6) REBOOT YOUR DISK EDIT PROGRAM AND
 READ IN TRACK $11,
      SECTOR $00 OF THE TEST DISK YOU J
UST CREATED.

YOU WILL NOW NOTICE SEVERAL DOZEN "FF"S
' THAT WEREN'T PRESENT
ON THE SYSTEM MASTER DISK.  NOW LET'S L
OOK AT THE ROWS STARTING
WITH BYTE $38 WHICH IS THE FIRST BYTE O
F THE BIT MAP.

WHOEVER WROTE DOS, EMPLOYED A SIMPLE WA
Y OF RECORDING THE
STATUS (FULL OR EMPTY) OF EVERY SINGLE 
SECTOR ON THE DISK AND
SQUEEZING THIS INFO INTO AS LITTLE SPAC
E AS POSSIBLE.  IT'S
DONE BY ASSIGNING A TWO BYTE "MAP" TO E
ACH TRACK AND THEN
STRUCTURING DOS TO VARY THE VALUES OF T
HE MAP WHICH INDICATES
THE TRACKS AVAILABLE SECTORS.

THE ILLUSTRATION BELOW SHOWS HOW THE MA
PS ARE LINKED TO THEIR
RESPECTIVE TRACKS:
BYTE# TRK $00       TRK $01
 38:  !00 00! 00 00 !00 00! 00 00
      TRK $02       TRK $03
 40:  !00 00! 00 00 !FF FF! 00 00
      TRK $04       TRK $05
 48:  !FF FF! 00 00 !FF FF! 00 00
  :
  :
  :   TRK $1E       TRK $1F
 B0:  !FF FF! 00 00 !00 00! 00 00

THE FIRST "00 00" STARTING WITH BYTE $3
8 IS THE BIT MAP FOR 
TRACK $00, THE NEXT "00 00" ARE SKIPPED
 AND THE THIRD BYTE
PAIR ARE ASSIGNED TO $01, THIS METHOD C
ONTINUES ON THROUGH
THE BIT MAP FIELD.

THIS APPEARS AS SEEMINGLY MEANINGLESS D
ATA ABOUT EACH SECTOR'S
STATUS BUT REMEMBER THAT ALL HEX BYTES 
ARE COMPOSED OF 8 
INDIVIDUAL BITS.  IF YOU ARE UNFAMILIAR
 WITH THIS, THEN I
SUGGEST YOUR READ UP ON THE HEXADECIMAL
 SYSTEM.  I WON'T GO 
INTO IT HERE BECAUSE THERE ARE NUMEROUS
 ARTICLES AND BOOKS,
ETC., ON THIS SUBJECT.  ANYWAY, IF WE A
LLOT 2 BYTES FOR EACH
TRACKS BIT MAP, WE THEN HAVE 16 BITS TO
 PLAY WITH.

ISN'T IT A COINCIDENCE THAT EACH TRACK 
ALSO CONTAINS 16 SEC-
TORS.  AND WHAT'S EVEN MORE CONVENIENT 
IS THAT EACH BIT CAN
HAVE 1 OR 2 VALUES - A '0' OR A '1'.  I
F A SINGLE BIT IS 
ASSIGNED TO EACH SECTOR IN A TRACK, WE 
CAN SHOW THAT A SECTOR
IS FREE BY SETTING ITS BIT TO A '1', WH
EREAS A '0' WOULD TELL
US AND DOS THAT IT CONTAINS DATA.  LOOK
 AT THE EXAMPLE BELOW:

SECTOR #'S : FDECBA98   76543210
BIT VALUES : 00111111   11111111
BYTE VALUES:    3F         FF

THE '0'S' IN SECTORS $0F AND $0E TELLS 
US THAT THESE ARE USED;
THE '1'S' IN SECTORS $0D-$00 TELLS US T
HAT THEY ARE FREE.
THE APPLE WILL AUTOMATICALLY TRANSLATE 
THE BINARY NUMBER,
'00111111' INTO THE HEX NUMBER '3F', AN
D '11111111' INTO 'FF',
AND THE BIT MAP WOULD SHOW UP AS '3F FF
'.  REFER TO THE HEX,
BINARY, DECIMAL TABLE IN THE FIRST TUTO
RIAL.

IF YOU'VE BEEN FOLLOWING ALONG IN THE E
XAMPLE ON THE TEST DISK
YOU SHOULD SEE THESE 2 BYTES STARTING A
T BYTE $80.  THIS TELLS
US THAT THE '3F FF' REPRESENTS THE STAT
US OF THE SECTORS IN 
TRACK $12(18).  THIS IS WHERE THE HELLO
 PROGRAM WAS LOCATED
WHEN YOU INITIALIZED THIS TEST DISK.  S
O IT OCCUPIES SECTORS
$0E AND $0F.  WHENEVER DOS WRITES DATA 
ON A TRACK, IT ALWAYS
STARTS WITH THE HIGHEST AVAILABLE SECTO
R AND THEN WORKS DOWN.

A GLANCE AT THE TABLE IN THE FIRST TUTO
RIAL SHOWS US THAT IF
YOU WANT TO SHOW THAT ALL THE 16 SECTOR
S ON A GIVEN TRACK ARE
FREE, THEN ALL OF ITS 16 BITS ARE SET T
O '1', GIVING US AN
'FF FF' BYTE-PAIR.  IF YOU WANTED TO RE
SERVE AN ENTIRE TRACK 
FOR SOMETHING, THEN PLACE '00 00' INTO 
ITS BIT MAP.

NOW THAT WE'RE BECOMING FAMILIAR WITH D
OS  AND ITS VTOC, NEXT
TIME WE'LL START PERFORMING A FEW TIPS 
& TRICKS.

